import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
import { fileURLToPath } from 'url'
import { dirname } from 'path'

const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue({
      // 热更新优化
      reactivityTransform: true
    })
  ],
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src')
    }
  },
  server: {
    port: 3000,
    host: true,
    open: true,
    // 热更新配置
    hmr: {
      overlay: true,  // 显示错误遮罩
      timeout: 5000   // 超时时间
    },
    // 监听文件变化
    watch: {
      usePolling: false,  // 不使用轮询（性能更好）
      interval: 100       // 轮询间隔（如果需要）
    }
  },
  // 优化依赖预构建
  optimizeDeps: {
    include: [
      'vue',
      'element-plus',
      '@element-plus/icons-vue',
      '@amap/amap-jsapi-loader'
    ],
    exclude: []
  },
  build: {
    outDir: 'dist',
    assetsDir: 'assets',
    sourcemap: false,
    // 优化构建
    rollupOptions: {
      output: {
        manualChunks: {
          'vue-vendor': ['vue'],
          'element-plus': ['element-plus', '@element-plus/icons-vue']
        }
      }
    }
  }
})

